/*
 * interface_logica_negocio.h
 *
 *  Created on: 12/11/2012
 */


/* Controle visando evitar inclusoes multiplas. */
#ifndef MOD_LOGICA_NEGOCIO
#define MOD_LOGICA_NEGOCIO


/* Controle visando identificar o servidor. */
#ifdef SERVIDOR_LOGICA_NEGOCIO
#define EXT_MOD_LOGICA_NEGOCIO
#else
#define EXT_MOD_LOGICA_NEGOCIO extern
#endif


/* Declaracoes de constantes usadas. */
#include <stdbool.h>
#include "../Camada_Apresentacao/interface_apresentacao.h"


/* Declaracoes dos prototipos das funcoes. */
EXT_MOD_LOGICA_NEGOCIO int cadastrar_usuario_negocio(char nome_de_usuario[11], char senha[7], int identificador);
EXT_MOD_LOGICA_NEGOCIO int autenticar_usuario_negocio(char nome_de_usuario[11], char senha[7]);
EXT_MOD_LOGICA_NEGOCIO int alterar_cadastro_negocio(char nome_de_usuario[11], char senha[7], char novo_nome_de_usuario[11], char nova_senha[7]);
EXT_MOD_LOGICA_NEGOCIO int encerrar_cadastro_negocio(char nome_de_usuario[11], char senha[7]);
EXT_MOD_LOGICA_NEGOCIO Usuario* listar_usuarios_negocio();


EXT_MOD_LOGICA_NEGOCIO int cadastrar_postagem_negocio(char texto_postagem[31], int identificador_postagem, bool comentavel, int identificador_autor, char data[11]);
EXT_MOD_LOGICA_NEGOCIO int cadastrar_comentario_negocio(char texto_comentario[21], int identificador_comentario, int identificador_postagem, int identificador_autor, char data[11]);
EXT_MOD_LOGICA_NEGOCIO int remover_postagem_negocio(int identificador_postagem, int identificador_autor);
EXT_MOD_LOGICA_NEGOCIO int remover_comentario_negocio(int identificador_comentario, int identificador_autor);
EXT_MOD_LOGICA_NEGOCIO int remover_postagens_usuario_negocio(int identificador_autor);
EXT_MOD_LOGICA_NEGOCIO int remover_comentarios_usuario_negocio(int identificador_autor);
EXT_MOD_LOGICA_NEGOCIO Postagem* busca_postagem_negocio(int identificador_autor);
EXT_MOD_LOGICA_NEGOCIO Comentario* busca_comentario_negocio(int identificador_autor);
EXT_MOD_LOGICA_NEGOCIO int avaliar_postagem_negocio(int identificador_postagem, float avaliacao);
EXT_MOD_LOGICA_NEGOCIO Postagem* listar_postagens_negocio();
EXT_MOD_LOGICA_NEGOCIO Comentario* listar_comentarios_negocio(int identificador_postagem);

#endif
